﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using HMS_Hospital_Team2._6.BL;
using System.Windows.Forms;
using HMS_Hospital_Team2._6.DA;

namespace HMS_Hospital_Team2._6.GUI
{
    public partial class UcNhomDichVu : UserControl
    {
        HMSHospitalEntities context = new HMSHospitalEntities();
        public UcNhomDichVu()
        {
            InitializeComponent();
        }

        bool checkbutton;

        // Hàm xử lý khi nhấn nút TẠO MỚI
        private void btnTaomoi_NhomDV_Click(object sender, EventArgs e)
        {
            grcThongtinnhomDV_NhomDV.Enabled = true;
            LamMoi();
            txtMaNhomDV.Properties.ReadOnly = false;
            txtTenNhomDV_NhomDV.Properties.ReadOnly = false;
            memoGhiChuNhomDV_NhomDV.Properties.ReadOnly = false;
            chkTrangThai_NhomDV.Properties.ReadOnly = false;
            btnSave_NhomDV.Enabled = true;
            btnLamMoi_NhomDV.Enabled = true;
            btnEdit_NhomDV.Enabled = false;

            //Đánh dấu đây là Thêm mới
            checkbutton = true;
        }

        // Load dữ liệu lên gridview
        private void UcNhomDichVu_Load(object sender, EventArgs e)
        {
            NhomDichVuBL dichvu = new NhomDichVuBL();
            grcDanhsachNhomDV_NhomDV.DataSource = dichvu.LoadDuLieuBL();
        }

        // Hàm Thêm mới Nhóm Dịch vụ
        void ThemNhomDV()
        {
            string MaNhomDV = txtMaNhomDV.Text.Trim();
            string TenNhomDV = txtTenNhomDV_NhomDV.Text.Trim();
            string Ghichu = memoGhiChuNhomDV_NhomDV.Text.Trim();
            bool Trangthai;
            if (chkTrangThai_NhomDV.Checked == true)
            {
                Trangthai = true;
            }
            else
            {
                Trangthai = false;
            }
            BL.NhomDichVuBL.ThemNhomDV(MaNhomDV,TenNhomDV, Ghichu, Trangthai);
        }

        // Hàm Làm mới
        void LamMoi()
        {
            txtMaNhomDV.Text = "";
            txtTenNhomDV_NhomDV.Text = "";
            memoGhiChuNhomDV_NhomDV.Text = "";
            chkTrangThai_NhomDV.Checked = false;
            txtMaNhomDV.Focus();
        }

        NhomDichVu ndv = new NhomDichVu();

        // Sự kiện khi nhấn nút LƯU
        private void btnSave_NhomDV_Click(object sender, EventArgs e)
        {

            while (kiemtraloi() == true)
            {
                if (checkbutton == true)
                {
                    ThemNhomDV();
                    MessageBox.Show("Tạo mới thành công!", "Thông báo!");
                }
                else
                {
                    SuaNhomDV();
                    MessageBox.Show("Sửa thành công!", "Thông báo!");
                }
                //Load lai gridview
                NhomDichVuBL dichvu = new NhomDichVuBL();
                grcDanhsachNhomDV_NhomDV.DataSource = dichvu.LoadDuLieuBL();
                LoadThongTinNhomDV();
                break;
            }
        }

        //Sự kiện khi nhấn nút LÀM MỚI
        private void btnLamMoi_NhomDV_Click(object sender, EventArgs e)
        {
            if (checkbutton == true)
            {
                LamMoi();
            }
            else
            {
                //txtMaNhomDV.Text = "";
                txtTenNhomDV_NhomDV.Text = "";
                memoGhiChuNhomDV_NhomDV.Text = "";
                chkTrangThai_NhomDV.Checked = false;
                txtTenNhomDV_NhomDV.Focus();
            }
        }

        // Hàm xử lý hiển thị thông tin chi tiết qua bên group box
        private void grdDsNhomDV_NhomDV_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            LoadThongTinNhomDV();
        }

        //Hàm Chỉnh sửa Nhóm DV
        void SuaNhomDV()
        {
            string MaNhomDV = (string)grdDsNhomDV_NhomDV.GetRowCellValue(grdDsNhomDV_NhomDV.FocusedRowHandle, grdDsNhomDV_NhomDV.Columns[0]);
            string TenNhomDV= txtTenNhomDV_NhomDV.Text;
            string Ghichu= memoGhiChuNhomDV_NhomDV.Text;
            bool Trangthai=true;
             if (chkTrangThai_NhomDV.Checked == true)
            {
                Trangthai = true;
            }
            else
            {
                Trangthai = false;
            }
            BL.NhomDichVuBL.SuaNhomDV(MaNhomDV,TenNhomDV,Ghichu,Trangthai);
        }

        // Sự kiện khi nhấn nút SỬA
        private void btnEdit_NhomDV_Click(object sender, EventArgs e)
        {
            // Bỏ Read Only cho các textbox, memo, checkbox
            txtMaNhomDV.Properties.ReadOnly = true;
            txtTenNhomDV_NhomDV.Properties.ReadOnly = false;
            memoGhiChuNhomDV_NhomDV.Properties.ReadOnly = false;
            chkTrangThai_NhomDV.Properties.ReadOnly = false;
            btnLamMoi_NhomDV.Enabled = false;
            btnSave_NhomDV.Enabled = true;
            btnLamMoi_NhomDV.Enabled = false;
            btnEdit_NhomDV.Enabled = false;
            //Đánh dấu đây là Chỉnh sửa
            checkbutton = false;
        }
        public void LoadThongTinNhomDV()
        {
            //Enable groupbox Nhóm Dịch vụ
            grcThongtinnhomDV_NhomDV.Enabled = true;
            btnEdit_NhomDV.Enabled = true;
            btnLamMoi_NhomDV.Enabled = false;
            btnSave_NhomDV.Enabled = false;

            //Chuyển sang ReadOnly cho textbox, Memo, checkbox
            txtMaNhomDV.Properties.ReadOnly = true;
            txtTenNhomDV_NhomDV.Properties.ReadOnly = true;
            memoGhiChuNhomDV_NhomDV.Properties.ReadOnly = true;
            chkTrangThai_NhomDV.Properties.ReadOnly = true;

            //Load dữ liệu sang Groupbox Nhóm dịch vụ
            using (HMSHospitalEntities show = new HMSHospitalEntities())
            {
                string sNDV = (string)grdDsNhomDV_NhomDV.GetRowCellValue(grdDsNhomDV_NhomDV.FocusedRowHandle, grdDsNhomDV_NhomDV.Columns[0]);
                var thongtin = (from tt in show.NhomDichVus
                                where tt.MaNhomDV == sNDV
                                select tt).FirstOrDefault<NhomDichVu>();
                txtMaNhomDV.Text = thongtin.MaNhomDV;
                txtTenNhomDV_NhomDV.Text = thongtin.TenNhomDV;
                memoGhiChuNhomDV_NhomDV.Text = thongtin.GhiChu;
                if (thongtin.TrangThai == true)
                {
                    chkTrangThai_NhomDV.Checked = true;
                }
                else
                {
                    chkTrangThai_NhomDV.Checked = false;
                }
            }
        }

        private void txtTenNhomDV_NhomDV_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) || !Char.IsNumber(e.KeyChar) || e.KeyChar == '-' || !Char.IsLetter(e.KeyChar) || !Char.IsWhiteSpace(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }


        //hàm kiểm tra khi text box để trống
        public bool kiemtraloi()
        {
            int count = 0;
            if (txtTenNhomDV_NhomDV.Text.Trim() == "")
            {
                count++;
            }
            if (count == 0)
            {
                return true;
            }
            else
            {
                MessageBox.Show("Vui lòng nhập Tên Nhóm dịch vụ!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtTenNhomDV_NhomDV.Focus();
                return false;
            }
        }
    }
}
